import { reactive, ref } from 'vue'
import api from "../api/index.js"

export function checkname(rule, value, callback) {
    //正则表达式
    //表示字符位数量 {N}:N个;    {N,M}:N到M个;    {N,}:最少N个;    ?:有或者没有;    +:最少一个;    *:任意个数
    //中括号表示一个字符位置 [AB]:这个字符位可以是A也可以是B;    [a-z];    [0-9];    例子[abc]{8,11}
    //.代表任意字符 .{20}
    //元字符 \d:0-9;    \w:0-9_A-z;    \D:排除掉所有的数字;    \W:排除掉所有的字符
    console.log(value + "---------------");
    let reg = /[A-z]\w{5,15}/
    if (reg.test(value)) {
        callback();
    } else {
        callback(new Error('用户名必须是以字母开头的6到16位的字母数字或下划线'));
    }


}
export async function checknameExist(rule, value, callback) {
    console.log("这里看用户名是否存在"+value);
    let reg = /[A-z]\w{5,15}/
    if (reg.test(value)) {
    } else {
        callback(new Error('用户名必须是以字母开头的6到16位的字母数字或下划线'));
    }
    let obj=ref({});
    obj.value.username=value;
    const response = await api.get("/api/checkuser",obj.value);
    if (response.code==401) {
            callback(new Error('用户名已存在'));
        } else {
            callback();
        }
    
}

export function checkpass(rule, value, callback) {
    //正则表达式
    //表示字符位数量 {N}:N个;    {N,M}:N到M个;    {N,}:最少N个;    ?:有或者没有;    +:最少一个;    *:任意个数
    //中括号表示一个字符位置 [AB]:这个字符位可以是A也可以是B;    [a-z];    [0-9];    例子[abc]{8,11}
    //.代表任意字符 .{20}
    //元字符 \d:0-9;    \w:0-9_A-z;    \D:排除掉所有的数字;    \W:排除掉所有的字符
    console.log(value + "---------------");
    let reg = /\w{6,16}/
    if (reg.test(value)) {
        callback();
    } else {
        callback(new Error('密码必须是6到16位的字母数字或下划线'));
    }
}


export function checkprice(rule,value,callback){
    let reg=/^[+]{0,1}(\d+)$|^[+]{0,1}(\d+\.\d+)$/; //包括小数的正数
    console.log(value+"*******************");
    if (reg.test(value)) {
        callback();
    } else {
        callback(new Error('请输入正确的金额'));
    }

}
export function checkratio(rule,value,callback){
    let reg=/^(0(\.\d{1,2})?|1(\.0{1,2})?)$/; //0-1之间的两位小数
    
    if (reg.test(value)) {
        callback();
    } else {
        callback(new Error('请输入0到1之间的最多两位小数'));
    }

}

export function checkblank(rule,value,callback){
    console.log("这是非空的表单验证");
    console.log(value+"*******************");
    let reg=/^.+$/;
    console.log(reg.test(value)+"---------");
    if (reg.test(value)&&value!==undefined) {
        callback();
    } else {
        callback(new Error('不能输入空值'));
    }
}
